import pandas as pd
# 绘图库
import plotly.express as px
# 训练集路径
train_path = r'./data/train.csv'
train = pd.read_csv(train_path)

# 2.3.1 数值型特征与因变量之间的关系
# 2.3.1.1 相关矩阵
train_copy = train.copy()
# 删除无关特征“客户ID”
train_copy = train_copy.drop(['客户ID'],axis = 1)
# 获取相关系数
train_corr = train_copy.corr()
# 排序
train_corr = train_corr.sort_values('是否流失',ascending = False)
# 利用plotly构建热度图
train_corr_fig = px.imshow(train_corr,text_auto = True,aspect = 'auto',color_continuous_scale = 'RdBu_r')
train_corr_fig.write_html(r'./data/数值型特征与因变量之间的关系/train_corr_fig.html')
# 根据上述获得的热度图，没有与label特别相关的特征。

# 2.3.1.2 散点图（此步骤可以省略，适用于回归问题）
# 我们通过散点图，确定数值特征与因变量之间的潜在线性关系
for i in list(train_copy.columns):
    if (i != '客户ID') & (i != '是否流失'):
        train_scatter = px.scatter(train_copy,x = i,y = '是否流失')
        train_scatter.write_html(f'./data/数值型特征与因变量之间的关系/散点图/{i}.html')
print('绘图成功~')